package com.irdstudio.efp.esb.api.bean.psd.query.resp;

import com.alibaba.fastjson.annotation.JSONField;
import com.irdstudio.efp.esb.api.common.GroupeInterface.psd;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 需求编号：【2019D1218】（普税贷需求）
 * 问题编号：【2019D1218】（普税贷预授信申请信息查询响应Bean）
 * 开发人员：【ludayong】
 * 创建日期：【2019/11/20 10:11】
 * 功能描述：
 */

public class NlsPsdPreCreditResultQueryRespBean implements Serializable {

    // 返回代码
    @NotNull(groups = {psd.class})
    @NotEmpty(groups = {psd.class})
    @Length(max = 32, groups = {psd.class})
    private String RetCd;

    @JSONField(name = "RetCd")

    public String getRetCd() {
        return RetCd;
    }

    @JSONField(name = "RetCd")

    public void setRetCd(String RetCd) {
        this.RetCd = RetCd;
    }

    // 返回信息
    @Length(max = 512, groups = {psd.class})
    private String RetMsg;

    @JSONField(name = "RetMsg")

    public String getRetMsg() {
        return RetMsg;
    }

    @JSONField(name = "RetMsg")

    public void setRetMsg(String RetMsg) {
        this.RetMsg = RetMsg;
    }

    // 预授信申请流水号
    @Length(max = 64, groups = {psd.class})
    private String PreCrAppSrlNo;

    @JSONField(name = "PreCrAppSrlNo")

    public String getPreCrAppSrlNo() {
        return PreCrAppSrlNo;
    }

    @JSONField(name = "PreCrAppSrlNo")

    public void setPreCrAppSrlNo(String PreCrAppSrlNo) {
        this.PreCrAppSrlNo = PreCrAppSrlNo;
    }

    // 产品代码
    @Length(max = 11, groups = {psd.class})
    private String PdCd;

    @JSONField(name = "PdCd")

    public String getPdCd() {
        return PdCd;
    }

    @JSONField(name = "PdCd")

    public void setPdCd(String PdCd) {
        this.PdCd = PdCd;
    }

    // 渠道申请号
    @Length(max = 128, groups = {psd.class})
    private String ChanAppNo;

    @JSONField(name = "ChanAppNo")

    public String getChanAppNo() {
        return ChanAppNo;
    }

    @JSONField(name = "ChanAppNo")

    public void setChanAppNo(String ChanAppNo) {
        this.ChanAppNo = ChanAppNo;
    }

    // 纳税人识别号
    @Length(max = 50, groups = {psd.class})
    private String TaxpyrIdntfNo;

    @JSONField(name = "TaxpyrIdntfNo")

    public String getTaxpyrIdntfNo() {
        return TaxpyrIdntfNo;
    }

    @JSONField(name = "TaxpyrIdntfNo")

    public void setTaxpyrIdntfNo(String TaxpyrIdntfNo) {
        this.TaxpyrIdntfNo = TaxpyrIdntfNo;
    }

    // 企业名称
    @Length(max = 300, groups = {psd.class})
    private String EntpNm;

    @JSONField(name = "EntpNm")

    public String getEntpNm() {
        return EntpNm;
    }

    @JSONField(name = "EntpNm")

    public void setEntpNm(String EntpNm) {
        this.EntpNm = EntpNm;
    }

    // 企业社会信用代码
    @Length(max = 10, groups = {psd.class})
    private String SoclCrdtCd;

    @JSONField(name = "SoclCrdtCd")

    public String getSoclCrdtCd() {
        return SoclCrdtCd;
    }

    @JSONField(name = "SoclCrdtCd")

    public void setSoclCrdtCd(String SoclCrdtCd) {
        this.SoclCrdtCd = SoclCrdtCd;
    }

    // 企业注册地址
    @Length(max = 500, groups = {psd.class})
    private String EntpRgstAddr;

    @JSONField(name = "EntpRgstAddr")

    public String getEntpRgstAddr() {
        return EntpRgstAddr;
    }

    @JSONField(name = "EntpRgstAddr")

    public void setEntpRgstAddr(String EntpRgstAddr) {
        this.EntpRgstAddr = EntpRgstAddr;
    }

    // 推荐人工号
    @Length(max = 20, groups = {psd.class})
    private String RefrId;

    @JSONField(name = "RefrId")

    public String getRefrId() {
        return RefrId;
    }

    @JSONField(name = "RefrId")

    public void setRefrId(String RefrId) {
        this.RefrId = RefrId;
    }

    // 推荐人所属机构号
    @Length(max = 128, groups = {psd.class})
    private String RefrBlngBrchNo;

    @JSONField(name = "RefrBlngBrchNo")

    public String getRefrBlngBrchNo() {
        return RefrBlngBrchNo;
    }

    @JSONField(name = "RefrBlngBrchNo")

    public void setRefrBlngBrchNo(String RefrBlngBrchNo) {
        this.RefrBlngBrchNo = RefrBlngBrchNo;
    }

    // 审批状态
    @Length(max = 7, groups = {psd.class})
    private String AprvSt;

    @JSONField(name = "AprvSt")

    public String getAprvSt() {
        return AprvSt;
    }

    @JSONField(name = "AprvSt")

    public void setAprvSt(String AprvSt) {
        this.AprvSt = AprvSt;
    }

    // 授信建议额度
    @Digits(integer = 21, fraction = 2, groups = {psd.class})
    private Double CrRcmndnAmt;

    @JSONField(name = "CrRcmndnAmt")

    public Double getCrRcmndnAmt() {
        return CrRcmndnAmt;
    }

    @JSONField(name = "CrRcmndnAmt")

    public void setCrRcmndnAmt(Double CrRcmndnAmt) {
        this.CrRcmndnAmt = CrRcmndnAmt;
    }

    // 建议年利率
    @Digits(integer = 12, fraction = 7, groups = {psd.class})
    private Double PrpslAnulIntRt;

    @JSONField(name = "PrpslAnulIntRt")

    public Double getPrpslAnulIntRt() {
        return PrpslAnulIntRt;
    }

    @JSONField(name = "PrpslAnulIntRt")

    public void setPrpslAnulIntRt(Double PrpslAnulIntRt) {
        this.PrpslAnulIntRt = PrpslAnulIntRt;
    }

    // 贷款授信期限
    @Length(max = 10, groups = {psd.class})
    private String LoanCrTrm;

    @JSONField(name = "LoanCrTrm")

    public String getLoanCrTrm() {
        return LoanCrTrm;
    }

    @JSONField(name = "LoanCrTrm")

    public void setLoanCrTrm(String LoanCrTrm) {
        this.LoanCrTrm = LoanCrTrm;
    }

    // 贷款授信期限单位
    @Length(max = 10, groups = {psd.class})
    private String LoanCrTrmUnit;

    @JSONField(name = "LoanCrTrmUnit")

    public String getLoanCrTrmUnit() {
        return LoanCrTrmUnit;
    }

    @JSONField(name = "LoanCrTrmUnit")

    public void setLoanCrTrmUnit(String LoanCrTrmUnit) {
        this.LoanCrTrmUnit = LoanCrTrmUnit;
    }

    // 证件号码
    @NotNull(groups = {psd.class})
    @NotEmpty(groups = {psd.class})
    @Length(max = 32, groups = {psd.class})
    private String CertNo;

    @JSONField(name = "CertNo")

    public String getCertNo() {
        return CertNo;
    }

    @JSONField(name = "CertNo")

    public void setCertNo(String CertNo) {
        this.CertNo = CertNo;
    }

    // 手机号码
    @NotNull(groups = {psd.class})
    @NotEmpty(groups = {psd.class})
    @Length(max = 11, groups = {psd.class})
    private String MblNo;

    @JSONField(name = "MblNo")

    public String getMblNo() {
        return MblNo;
    }

    @JSONField(name = "MblNo")

    public void setMblNo(String MblNo) {
        this.MblNo = MblNo;
    }

    // 证件姓名
    @NotNull(groups = {psd.class})
    @NotEmpty(groups = {psd.class})
    @Length(max = 300, groups = {psd.class})
    private String IdentNm;

    @JSONField(name = "IdentNm")

    public String getIdentNm() {
        return IdentNm;
    }

    @JSONField(name = "IdentNm")

    public void setIdentNm(String IdentNm) {
        this.IdentNm = IdentNm;
    }

    // 证件类型
    @NotNull(groups = {psd.class})
    @NotEmpty(groups = {psd.class})
    @Length(max = 5, groups = {psd.class})
    private String IdentTp;

    @JSONField(name = "IdentTp")

    public String getIdentTp() {
        return IdentTp;
    }

    @JSONField(name = "IdentTp")

    public void setIdentTp(String IdentTp) {
        this.IdentTp = IdentTp;
    }

    // 拒绝原因
    @Length(max = 300, groups = {psd.class})
    private String RfsRsn;

    @JSONField(name = "RfsRsn")

    public String getRfsRsn() {
        return RfsRsn;
    }

    @JSONField(name = "RfsRsn")

    public void setRfsRsn(String RfsRsn) {
        this.RfsRsn = RfsRsn;
    }

    // 拒绝码
    @Length(max = 20, groups = {psd.class})
    private String RfsCd;

    @JSONField(name = "RfsCd")

    public String getRfsCd() {
        return RfsCd;
    }

    @JSONField(name = "RfsCd")

    public void setRfsCd(String RfsCd) {
        this.RfsCd = RfsCd;
    }
}